home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Creative Computers
/
Creative Computers CD-ROM, Volume 1 (Legendary Design Technologies, Inc.)(1994).iso
/
commercial
/
visual_inspirations
/
mlm
/
rexx
/
mailmerge.rexx
< prev
next >
Wrap
OS/2 REXX Batch file
|
1994-11-17
|
3KB
|
126 lines
/*
MailMerge.Rexx
Written By J.L. White
(C) 1993 Merlin's Software
For Use With Mailing List Manager
Mail Merge From Database To Text File
*/
arg CurrentFile OutPut SendFile MergeFile
call SetUp
call GetData
call MergeData
call PrintIt
exit
SetUp:
FileName = "RAM:MLM.Temp"
SendFile = strip(SendFile)
if SendFile ~= "PRT:" then SendFile = SendFile"."right(CurrentFile,4,0)
MergeFile = strip(MergeFile)
return
GetData:
call open MergeData,"RAM:MLM.Temp",'R'
Address1 = strip(readln(MergeData))
Address2 = strip(readln(MergeData))
Address3 = strip(readln(MergeData))
Address4 = strip(readln(MergeData))
LabelA = strip(readln(MergeData))
LabelB = strip(readln(MergeData))
LabelC = strip(readln(MergeData))
LabelD = strip(readln(MergeData))
LabelE = strip(readln(MergeData))
LabelF = strip(readln(MergeData))
LabelG = strip(readln(MergeData))
LabelH = strip(readln(MergeData))
LabelI = strip(readln(MergeData))
LabelJ = strip(readln(MergeData))
call close MergeData
return
MergeData:
TooLong = 0
call open MergeData,MergeFile,'R'
call open TempData,"RAM:Merge.Temp",'W'
do until eof(MergeData)
char = readch(MergeData)
if char = "<" then do
char2 = readch(MergeData)
char3 = readch(MergeData)
char = char""char2""char3
if char2 = "A" | char2 = "a" then char = LabelA
if char2 = "B" | char2 = "b" then char = LabelB
if char2 = "C" | char2 = "c" then char = LabelC
if char2 = "D" | char2 = "d" then char = LabelD
if char2 = "E" | char2 = "e" then char = LabelE
if char2 = "F" | char2 = "f" then char = LabelF
if char2 = "G" | char2 = "g" then char = LabelG
if char2 = "H" | char2 = "h" then char = LabelH
if char2 = "I" | char2 = "i" then char = LabelI
if char2 = "J" | char2 = "j" then char = LabelJ
if char2 = "1" then char = Address1
if char2 = "2" then char = Address2
if char2 = "3" then char = Address3
if char2 = "4" then char = Address4
end
call writech TempData,char
end
call close MergeData
call close TempData
return
PrintIt:
TotalLines = 1
call open TempData,"RAM:Merge.Temp",'R'
call open SendData,SendFile,'W'
do until eof(TempData)
line = readln(TempData)
if length(line) < 80 then do
call writeln SendData,line
TotalLines = TotalLines + 1
end
else do
Long = length(line)
Words = words(line)
NewLength = 0
Length = 0
Temp = ""
x = 0
do x = 1 to Words
NewWord = word(line,x)
Length = wordlength(line,x)+1
if NewLength + Length > 79 then do
NewLength = 0
call writeln SendData,Temp
TotalLines = TotalLines + 1
Temp = ""
end
NewLength = NewLength + Length
Temp = insert(Temp,NewWord)
Temp = insert(Temp," ")
if x = Words then do
if NewLength > 0 then do
call writeln SendData,Temp
TotalLines = TotalLines + 1
end
end
end
end
end
if SendFile = "PRT:" then do
x = 0
if OutPut = 1 then do
do x = TotalLines to 66
call writeln SendData,""
end
end
end
call close TempData
call close SendData
address command "C:Delete >NIL: RAM:Merge.Temp"
address command "C:Delete >NIL: RAM:MLM.Temp"
return